.frame {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 400px;
  height: 400px;
  box-shadow: 1px 2px 10px rgba(0, 0, 0, 0.3);
  border-radius: 2px;
  overflow: hidden;
  background-color: #4c4ba2;
}

.dots {
  padding-top: 28px;
  padding-left: 194px;
}
.dots .dot {
  width: 12px;
  height: 12px;
  background-color: #fff;
  border-radius: 50%;
  margin: 5px 0;
}

.dot-1 {
  animation: dot 1016.9491525424ms ease-in-out infinite;
}

.dot-2 {
  animation: dot 1034.4827586207ms ease-in-out infinite;
}

.dot-3 {
  animation: dot 1052.6315789474ms ease-in-out infinite;
}

.dot-4 {
  animation: dot 1071.4285714286ms ease-in-out infinite;
}

.dot-5 {
  animation: dot 1090.9090909091ms ease-in-out infinite;
}

.dot-6 {
  animation: dot 1111.1111111111ms ease-in-out infinite;
}

.dot-7 {
  animation: dot 1132.0754716981ms ease-in-out infinite;
}

.dot-8 {
  animation: dot 1153.8461538462ms ease-in-out infinite;
}

.dot-9 {
  animation: dot 1176.4705882353ms ease-in-out infinite;
}

.dot-10 {
  animation: dot 1200ms ease-in-out infinite;
}

.dot-11 {
  animation: dot 1224.4897959184ms ease-in-out infinite;
}

.dot-12 {
  animation: dot 1250ms ease-in-out infinite;
}

.dot-13 {
  animation: dot 1276.5957446809ms ease-in-out infinite;
}

.dot-14 {
  animation: dot 1304.347826087ms ease-in-out infinite;
}

.dot-15 {
  animation: dot 1333.3333333333ms ease-in-out infinite;
}

.dot-16 {
  animation: dot 1363.6363636364ms ease-in-out infinite;
}

.dot-17 {
  animation: dot 1395.3488372093ms ease-in-out infinite;
}

.dot-18 {
  animation: dot 1428.5714285714ms ease-in-out infinite;
}

.dot-19 {
  animation: dot 1463.4146341463ms ease-in-out infinite;
}

.dot-20 {
  animation: dot 1500ms ease-in-out infinite;
}

@keyframes dot {
  0%, 100% {
    transform: translateX(-50px);
  }
  50% {
    transform: translateX(50px);
  }
}